package ve.com.wayoyo.wuml_case;

import java.io.FileOutputStream;
import java.io.IOException;

import ve.com.wayoyo.wuml_case.DibujoDiagramas.DiagramaClases;
import ve.com.wayoyo.wuml_case.DibujoDiagramas.DiagramaER;
import ve.com.wayoyo.wuml_case.DibujoDiagramas.VistaDiagrama;

import android.graphics.Color;
import android.os.Environment;
import android.text.InputFilter.LengthFilter;

public class UserPref {

	private static UserPref _instancia;
	private int ColorFondoDiagramas;
	private String NombreProyecto;
	private int WinHeight;
	private int WinWidth;
	private int PageHeight;
	private boolean usingConvections;
	private String Languaje_Clase;
	private String Languaje_ER;
	private boolean overridingMethods = true;

	public boolean isUsingConvections() {
		return usingConvections;
	}

	public void setUsingConvections(boolean usingConvections) {
		this.usingConvections = usingConvections;
	}

	public boolean isOverridingMethods() {
		return overridingMethods;
	}

	public void setOverridingMethods(boolean overridingMethods) {
		this.overridingMethods = overridingMethods;
	}

	public int getPageHeight() {
		return PageHeight;
	}

	public void setPageHeight(int pageHeight) {
		PageHeight = pageHeight;
	}

	public int getPageWidht() {
		return PageWidht;
	}

	public void setPageWidht(int pageWidht) {
		PageWidht = pageWidht;
	}

	private int PageWidht;

	public int getWinHeight() {
		return WinHeight;
	}

	public void setWinHeight(int winHeight) {
		WinHeight = winHeight;
	}

	public int getWinWidth() {
		return WinWidth;
	}

	public void setWinWidth(int winWidth) {
		WinWidth = winWidth;
	}

	private UserPref() {
		ColorFondoDiagramas = Color.WHITE;
	}

	public int getColorFondoDiagramas() {
		return ColorFondoDiagramas;
	}

	public void setColorFondoDiagramas(int colorFondoDiagramas) {
		ColorFondoDiagramas = colorFondoDiagramas;
	}

	static public UserPref getInstancia() {
		if (_instancia == null) {
			_instancia = new UserPref();
			return _instancia;
		} else {
			return _instancia;
		}
	}

	public String getLanguaje() {
		if (VistaDiagrama.getVista().getDiagrama() instanceof DiagramaClases)
			return Languaje_Clase;
		else if (VistaDiagrama.getVista().getDiagrama() instanceof DiagramaER)
			return Languaje_ER;
		return Languaje_Clase;
	}
	
	public String getLengiajeClase(){
		return Languaje_Clase;
	}

	public void setLanguaje(String languaje) {
		if (VistaDiagrama.getVista().getDiagrama() instanceof DiagramaClases)
			Languaje_Clase = languaje;
		else if (VistaDiagrama.getVista().getDiagrama() instanceof DiagramaER)
			Languaje_ER = languaje;
		// Languaje_Clase = languaje;
	}

	public void setLanguaje(String languaje, String tipo) {
		if (tipo.equals("Clase"))
			Languaje_Clase = languaje;
		else if (tipo.equals("ER"))
			Languaje_ER = languaje;
		// Languaje_Clase = languaje;
	}

	public void guardarUserPref() throws IOException {
		String DOM = "<UserPref>\n";
		DOM += "\t<ColorFondoDiagramas value=\"" + ColorFondoDiagramas
				+ "\"/>\n";
		DOM += "\t<usingConvections value=\"" + usingConvections + "\"/>\n";
		DOM += "\t<Languaje_Clase value=\"" + Languaje_Clase + "\"/>";
		DOM += "\t<Languaje_ER value=\"" + Languaje_ER + "\"/>";
		DOM += "\t<overridingMethods value=\"" + overridingMethods + "\"/>\n";
		DOM += "\t<NombreProyecto value=\"" + NombreProyecto + "\"/>\n";
		DOM += "</UserPref>\n";

		FileOutputStream fos = null;
		try {
			fos = new FileOutputStream(
					Environment.getExternalStorageDirectory()
							+ "/WUML/UserPref.wcf");
			fos.write(DOM.getBytes());
			fos.flush();
			fos.close();
			fos = null;
		} catch (IOException e) {
			throw e;
		} finally {
			if (fos != null) {
				try {
					fos.close();
					fos = null;
				} catch (IOException e) {
					throw e;
				}
			}
		}
	}

	public String getNombreProyecto() {
		return NombreProyecto;
	}

	public void setNombreProyecto(String nombreProyecto) {
		NombreProyecto = nombreProyecto;
	}
}
